package com.java.basis.io.stream;

import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * 使用字节流进行文件编码格式的转换
 * @author wangning
 * @create 2021-06-17 10:56
 */
public class TestGBKToUTF8 {
	public static void main(String[] args) throws Exception {
		/*
		 *
		 * GBK编码字节流与UTF-8编码字节流的转换：
		 * 操作步骤就是：先解码：new String(src,0，len,"GBK")得到字符串；再使用getBytes("UTF-8")得到UTF-8编码字节数组
		 */

		//gbk-->utf-8
		FileInputStream fis=new FileInputStream("gbk_file.txt");//gbk文件
		FileOutputStream fos=new FileOutputStream("222.txt");//utf-8文件
		byte[] src=new byte[1024];
		int len;
		byte[] dest;
		while((len=fis.read(src))!=-1){
			dest=new String(src,0,len,"GBK").getBytes("UTF-8");
			fos.write(dest,0,dest.length );
		}

		//utf-8-->gbk
        /*FileInputStream fis=new FileInputStream("222.txt");//utf-8文件
        FileOutputStream fos=new FileOutputStream("gbk_file.txt");//gbk文件
        byte[] src=new byte[1024];
        int len;
        byte[] dest;
        while((len=fis.read(src))!=-1){
            dest=new String(src,0,len,"UTF-8").getBytes("GBK");
            fos.write(dest);
        }*/

		fis.close();//释放资源
		fos.close();
	}
}
